This invention relates generally to data communications, and more particularly to distributing tasks associated with data communications in networked systems or devices.
Several protocols are available for data communications between networked systems or devices on a variety of network architectures. Ethernet is a common protocol for a packet-based network, such as local area networks (LANs). Like other packet-based network protocols, the Ethernet enables communication of data in packets (e.g., a data packet, such as an Ethernet packet) over a network. These packets include a source and a destination address, the data being transmitted, and a series of data integrity and security bits. For example, a typical Ethernet packet used for transferring data across a network generally includes a preamble which may include a start frame indication, a destination address to identify the receiving node for the Ethernet packet, a source address to identify the transmitting node directly on the transmitted packet, and a set of fields to indicate packet characteristics, such as the packet type and packet routing information.
In some network architectures a host, such as a computer system communicates over a network using an interface and a network protocol. Over the network, communicated data may be received at the interface, such as an adapter associated with the host. For example, the adapter may include an Ethernet adapter to enable transfer of Ethernet packets from one Ethernet device to another Ethernet device coupled to the network. Commonly, a primary processor, such as a central processing unit (CPU) provided in a computer system is responsible for handling the communicated data, such as packet processing data received within or for a packet over the network.
Typically, such packet processing data may include one or more tasks associated with the packet. For the most part, many conventional network protocols perform these tasks in networking software located at a networked system, consuming computing resources thereof. For example, a packet including special purpose communication data may be received at a network adapter coupled to the networked system. Using a typical network communication software and a primary processor both located on the networked system, the packet may be examined to determine appropriate actions on the received data. This operation, however, commonly involves execution of the network communication software from the primary processor. As an example, some networking, and data communications related operations may unnecessarily tie up the primary processor, burdening the networked system with communication related operations as opposed to have it available for computing related operations.
Thus, there is a continuing need for better ways to process data communications, especially while distributing network communication tasks.